//
//  testeenum.swift
//  CLearning_@_silgen_name
//
//  Created by chenyh on 2020/12/25.
//

import Foundation
enum Week: String {
   case Mon
   case Tue
   case Wed
   case Thu
   case Fri
   case Sat
   case Sun
}
// case与rawValue值（打印结果一样，但类型不同）
print("类型：\(type(of: Week.Mon)) 值：\(Week.Mon)")                   // 打印： 类型：Week   值：Mon
print("类型：\(type(of: Week.Mon.rawValue)) 值：\(Week.Mon.rawValue)") // 打印： 类型：String 值：Mon

// 通过rawValue来生成对应的case(可选类型，找不到rawValue对应的case，就是nil)
print(Week.init(rawValue: "Mon"))    // 打印： Optional(Demo.Week.Mon)
print(Week.init(rawValue: "Hello"))  // 打印： nil

//先创建 元组<Array<T>,Pointer> 然后编辑创建case项
//通过_findStringSwitchCase 获取入参值的Index.使用swict通过index匹配到case 匹配失败则返回nil，成功则返回optional的some值
//在swift源码中搜索findStringSwitchCase可以看到是通过for遍历匹配的index
